package cn.lj2;

import java.util.Arrays;

public class MAXZ14 {
    public static void main(String[] args) {
        MAXZ14.Solution solution = new MAXZ14().new Solution();
    }
/*    标签：链表
    当字符串数组长度为 0 时则公共前缀为空，直接返回
    令最长公共前缀 ans 的值为第一个字符串，进行初始化
    遍历后面的字符串，依次将其与 ans 进行比较，两两找出公共前缀，最终结果即为最长公共前缀
    如果查找过程中出现了 ans 为空的情况，则公共前缀不存在直接返回
    时间复杂度：O(s)，s 为所有字符串的长度之和*/
    class Solution {
        /*public String longestCommonPrefix(String[] strs) {
            if (strs.length==0){
                return "";
            }
            String first = strs[0];
            for (int i = 0; i < strs.length; i++) {
                int j = 0;
                for (; j < first.length() && j < strs[i].length(); j++) {
                    if (first.charAt(j) != strs[i].charAt(j))
                        break;
                }
                first = first.substring(0, j);
                if (first.equals(""))
                    return first;
            }
                return first;
        }*/

        public String longestCommonPrefix(String[] strs) {
            if (strs.length == 0)
                return "";
            StringBuilder res = new StringBuilder();
            Arrays.sort(strs);
            // 字符串转数组
            char[] a = strs[0].toCharArray();

            char[] b = strs[strs.length-1].toCharArray();

            for (int i = 0; i < a.length; i++) {
                if (i<b.length&&a[i]==b[i]){
                    res.append(a[i]);
                }
                else break;
            }
            return res.toString();
        }

    }
}
